package com.irdstudio.efp.rule.service.dao;

import java.util.List;

import com.irdstudio.efp.rule.service.domain.TaxWithholdRemitCorp;
import com.irdstudio.efp.rule.service.vo.TaxWithholdRemitCorpVO;

/**
 * DAO Interface: 代扣代缴单位信息
 * @author ligm
 * @date 2019-04-29 
 */
public interface TaxWithholdRemitCorpDao {
	
	/**
	 * 新增数据 
     * @param inTaxWithholdRemitCorpVo
	 * @return 
	 */
	public int insertTaxWithholdRemitCorp(TaxWithholdRemitCorp taxWithholdRemitCorp);

    /**
	 * 根据主键删除信息 
     * @param inTaxWithholdRemitCorpVo
	 * @return 
	 */
	public int deleteByPk(TaxWithholdRemitCorp taxWithholdRemitCorp);

    /**
	 * 根据主键更新信息 
     * @param inTaxWithholdRemitCorpVo
	 * @return 
	 */    
	public int updateByPk(TaxWithholdRemitCorp taxWithholdRemitCorp);

    /**
	 * 根据主键查询详情 
     * @param taxWithholdRemitCorp
	 * @return 
	 */
    public TaxWithholdRemitCorp queryByPk(TaxWithholdRemitCorp taxWithholdRemitCorp);

    /**
	 * 一级数据权限,默认查看当前用户对应的数据 
     * @param taxWithholdRemitCorp
	 * @return 
	 */
	public List<TaxWithholdRemitCorp> queryAllByLevelOneByPage(TaxWithholdRemitCorpVO taxWithholdRemitCorp);
	
    /**
	 * 二级数据权限,默认查看当前用户及所属机构对应的数据 
     * @param taxWithholdRemitCorp
	 * @return 
	 */
	public List<TaxWithholdRemitCorp> queryAllByLevelTwoByPage(TaxWithholdRemitCorpVO taxWithholdRemitCorp);
	
    /**
	 * 三级数据权限,默认查看当前用户所在机构及下属机构对应的数据 
     * @param taxWithholdRemitCorp
	 * @return 
	 */
	public List<TaxWithholdRemitCorp> queryAllByLevelThreeByPage(TaxWithholdRemitCorpVO taxWithholdRemitCorp);

    /**
	 * 四级数据权限,默认预留，便于后续自定义 
     * @param taxWithholdRemitCorp
	 * @return 
	 */
    public List<TaxWithholdRemitCorp> queryAllByLevelFourByPage(TaxWithholdRemitCorpVO taxWithholdRemitCorp);

    /**
	 * 五级数据权限,默认预留，便于后续自定义 
     * @param taxWithholdRemitCorp
	 * @return 
	 */
    public List<TaxWithholdRemitCorp> queryAllByLevelFiveByPage(TaxWithholdRemitCorpVO taxWithholdRemitCorp);
    

    /**
     * 需求编号：2019D0519<br/>
     * 问题编号：<br/>
     * 功能描述：通过授信流水号查询所有记录<br/>
     * 开发人员：周才顺<br/>
     * 创建时间：2019年5月27日 上午9:20:06<br/>
     * @author zhoucs1
     * @since  1.0 
     * @version 1.0
     * @param taxWithholdRemitCorpVo
     * @return
     */
	public List<TaxWithholdRemitCorp> queryAllByLmtApplySeq(TaxWithholdRemitCorpVO taxWithholdRemitCorpVo);
    /**
     * 根据授信流水号和代扣代缴单位纳税人识别号查询代扣代缴单位信息
     * 
     * @author weijj
     * @since 2019年5月29日 上午9:56:08
     * @version 1.0
     */
    public TaxWithholdRemitCorp queryTaxWithholdRemitCorpByCrdtAppFlowNoAndwthldngTaxpyNo(TaxWithholdRemitCorp taxWithholdRemitCorp);

	public TaxWithholdRemitCorp queryWthldngCorpNm(TaxWithholdRemitCorp taxWithholdRemitCorp);
	
	/**
	 * 需求编号：【2019D0519】（业务提的需求编号）
	 * 问题编号：【xxxxxxx】（若不是因为修复问题而新增该类，则留空）
	 * 开发人员：qiuyf
	 * 创建日期：2019年7月8日 上午10:58:52
	 * 功能描述：通过授信申请流水号获取最新一笔代扣代缴单位信息
	 */
	public TaxWithholdRemitCorp queryWthldngCorpName(String crdtAppFlowNo);
    
}
